     <?php
//Calcula atrasados
$sql = "update Financeiro set status = '2' where status = '0' and vencimento < '".date("Y-m-d")."'";
$conexao = db::conecta();
$result = db::query($sql, $conexao);
db::close($conexao);

function formapagamento($formapagamento){
    switch ($formapagamento){
        case 1:
            return "À Vista";
        break;
        case 2:
            return "Cartão de Crédito";
        break;
        case 3:
            return "Cheque";
        break;
        case 4:
            return "Parcelado";
        break;
    }
}

function exc_venda($exc_venda_set){
        if($exc_venda_set != '' && valida::numero($exc_venda_set)){
                $id_produto = $_GET["id_produto"];
                $excconf = $_GET["excconf"];
                if($excconf == 1){
                        $cont = 0;
                        while($cont < $_SESSION["produto"]["cont"]){
                            if($_SESSION["produto"][$cont]["codebar"] == $id_produto){
                                $_SESSION["produto"][$cont]["codebar"]  = $_SESSION["produto"][$cont+1]["codebar"];
                                $_SESSION["produto"][$cont]["produto"]  = $_SESSION["produto"][$cont+1]["produto"];
                                $_SESSION["produto"][$cont]["quant"]    = $_SESSION["produto"][$cont+1]["quant"];
                                $_SESSION["produto"][$cont]["valunit"]  = $_SESSION["produto"][$cont+1]["valunit"];
                                $_SESSION["produto"][$cont]["desconto"] = $_SESSION["produto"][$cont+1]["desconto"];
                            }
                            $cont++;
                        }
                        $_SESSION["produto"]["cont"]--;
                        
                        header("location: ".url("pag", "venda_set"));
                }else{
                        echo "
                        <script>
                        var p = window.confirm('Tem certeza que deseja excluir este produto?');
                        window.location=(p) ? '".url("pag", "venda_set")."&id_produto=$id_produto&exc_venda_set=$exc_venda_set&excconf=1' : '".url("pag", "venda_set")."&id_produto=$id_produto&excconf=1';
                        </script>";
                }
        }
}


function escreve_pagamento(&$parcela, &$venda){
                    ?>
                    <!--
                    <input type="checkbox" name='ch_entrada' id='ch_entrada' onClick="val_entrada(this.id, 'entrada')" />
                    <label class="campos" for='ch_entrada'>Entrada: </label>
                    <input type='text' value='<?php echo $parcela->get_entrada(); ?>' name='entrada' id='entrada' style='width: 70px;' onBlur="calc_venda_parcela(0)" readonly='readonly' />
                    -->
                    <label class="campos">Parcelas: </label>
                    <input type='text' value='<?php echo $parcela->get_parcelas(); ?>' name='parcelas' id='parcelas' style='width: 70px;' onBlur="calc_venda_parcela(0)" />
                    <label class="campos">Vencimento:</label>
                    <input type='text' value='<?php echo $parcela->get_vencimento(); ?>' name='vencimento' id='parc_venc' style='width: 70px;' OnFocus="limpa(id)" onBlur="valida_data_menor(this)" OnKeyPress="formatar(this, '00/00/0000')"/>                    
                    <label class="campos">Valor das Parcelas: </label>
                    <input type='text' value='<?php echo $parcela->get_valorparcela(); ?>' name='valorparcelado' id='valorparcelado' style='width: 70px;' readonly='readonly' class="readonly" />
                    <label class="valor_venda" style="margin-left: 605px">Valor da Venda: </label>
                    <input style="margin-left:5px; width:100px" class="valor_venda" type='text' value='<?php echo $venda->get_total(); ?>' name='valortotalvenda' id='valortotalvenda' style='width: 70px;' readonly='readonly' class="readonly" />
                    <?php    
}

function salva_pagamento($venda, $parcela, $fp){
    $erro = 0;
    if(!$venda->set_formapagamento($fp)){ $erro = 1; }
    if(!$parcela->set_entrada($_POST["entrada"])){ $erro = 1; }
    if(!$parcela->set_parcelas($_POST["parcelas"])){ $erro = 1; }
    if(!$parcela->set_valorparcela($_POST["valorparcelado"])){ $erro = 1; }
    if(!$parcela->set_vencimento($_POST["vencimento"])){ $erro = 1; }
    if(!$venda->set_total($_SESSION["venda"]["total"])){ $erro = 1; }
    if($venda->get_formapagamento() == 2){
        if(!$parcela->set_juro($_POST["desconto"]*(-1))){ $erro = 1; }
    }else{
        if(!$parcela->set_juro($_POST["juros"])){ $erro = 1; }
    }
    
    if($erro == 0){
       $id_parcela = $parcela->salvar();
       $venda->set_idParcelado($id_parcela);
       $idVenda = finalizando_venda($venda);
       
       unset($parcela);
       unset($venda);
    }
    return $idVenda;
}

function busca_nome($id){
        $sql = "select nome from Cliente where id = '$id'";
        $conexao = db::conecta();
        $result = db::query($sql, $conexao);
        $nome = db::fetch_array($result);
        db::close($conexao);
        return $nome[0];
}

function finalizando_venda($venda){
    if($_SESSION["produto"]["cont"] == 0){
        return 0;
    }
    
    $venda->set_idCliente($_SESSION["venda"]["id_cliente"]);
    $venda->set_data($_SESSION["venda"]["data"]);
    $venda->set_hora($_SESSION["venda"]["hora"]);
    $venda->set_filial($_SESSION["angel_filial"]);
    
    $idVenda = $venda->salvar();
    
    unset($venda);
    
    $cont = 0;
    while ($cont < $_SESSION["produto"]["cont"]){
        $venda_produto = new Venda_Produto();
        $produto = new Produto();
        
        $venda_produto->set_idVenda($idVenda);
	$venda_produto->set_codebar($_SESSION["produto"][$cont]["codebar"]);
	$venda_produto->set_desconto($_SESSION["produto"][$cont]["desconto"]);
	$venda_produto->set_quantidade($_SESSION["produto"][$cont]["quant"]);
        $venda_produto->set_total($_SESSION["produto"][$cont]["total"]);
        $venda_produto->salvar();
        
        $produto->carregar($venda_produto->get_codebar());
        
        $q = $produto->get_quantidade() - $venda_produto->get_quantidade();
        $produto->set_quantidade($q);
        $produto->alterar($venda_produto->get_codebar());
        
        unset($produto);
        unset($venda_produto);
        
        $cont++;
    }
    venda_financeiro($idVenda);
    return $idVenda;
}

function limpar_venda(){
    $_SESSION["venda"]["data"]       = '';
    $_SESSION["venda"]["hora"]       = '';
    $_SESSION["produto"]["cont"]     = '';
    $_SESSION["venda"]["id_cliente"] = '';
    $_SESSION["venda"]["id_venda"]   = '';
    $_SESSION["venda"]["total"]      = '';
    
    for($cont = 0; $cont < $_SESSION["produto"]["cont"]; $cont++){
        $_SESSION["produto"][$cont]["codebar"]  = '';
        $_SESSION["produto"][$cont]["produto"]  = '';
        $_SESSION["produto"][$cont]["quant"]    = '';
        $_SESSION["produto"][$cont]["valunit"]  = '';
        $_SESSION["produto"][$cont]["desconto"] = '';
    }
    $fin = $_SESSION["financeiro"];
    $_SESSION["financeiro"] = 0;
    if($fin > 0){
        header("location: ".url("pag", "baixar_fatura")."&a=vendas&f=".$fin);
    }else{
        header("location: ".url("pag", "vendas"));
    }  
}

function debitar_estoque($codebar, $qnt){
    $produto = new Produto();
    $produto->carregar($codebar);
    if($produto->get_quantidade() >= $qnt){
        $q = $produto->get_quantidade() - $qnt;
        $produto->set_quantidade($q);
        $produto->alterar($codebar);
        unset($produto);
        return 1;
    }else{
        return 0;
    }
}

function total($qnt, $desc, $unit){
    if($desc == 0 || $desc == ''){
        $total = $unit * $qnt;
    }else{
        $total = ($unit - (($unit / 100) * $desc)) * $qnt;
    }
    return limita_casa($total);
}


// ------------------ Consulta ------------------ 

function id_vc($id){
    $conexao = db::conecta();
    $sql_vc = "select id from Venda_concluida where id_ped = '".$id."'";

    $res_vc = db::query($sql_vc, $conexao);
    $id_vc = db::fetch_array($res_vc);
    db::close($conexao);
    return $id_vc[0];
}


// ------------------ Financeiro ------------------ 

function venda_financeiro($idVenda){
    $fp = 0;
    $pe = 0;
    
    $venda = new Venda();
    $parcela = new Parcelado();
    $financeiro = new Financeiro();
    
    $venda->carregar($idVenda);
    $parcela->carregar($venda->get_idParcelado());
    $financeiro->set_idVenda($venda->get_id());
    
    $financeiro->set_status(0);
    if($venda->get_formapagamento() == 1){
        $fp = $venda->get_formapagamento();
        $financeiro->set_vencimento($venda->get_data());
        $financeiro->set_totalparcela(1);
        $financeiro->set_parcela(1);
        $financeiro->set_status(1);
        $id = $financeiro->salvar();
    }else{
        $tp = $parcela->get_parcelas();
        $np = 1;
        
        if($parcela->get_entrada() > 0){
            $pe = 1;
            $tp++;
            $financeiro->set_vencimento($parcela->get_vencimento());
            $financeiro->set_totalparcela($tp);
            $id = $financeiro->salvar();
            $np++;
        }
        $financeiro->set_parcela($np);
        $financeiro->set_totalparcela($tp);
        
        $dia = substr($parcela->get_vencimento(), 0, 2);
        $mes = substr($parcela->get_vencimento(), 3, 2);
        $ano = substr($parcela->get_vencimento(), 6, 4);
        /*
        if($np == $tp){
            $financeiro->set_vencimento($parcela->get_vencimento());
            $financeiro->set_parcela($np);
            $id = $financeiro->salvar();
        }
        */
        
        while($np <= $tp){
            
            if($np == 1){
                $venc = $parcela->get_vencimento();
            }else{
                $mes++;
                
                // Checa se o ano é bissexto
                if($mes == 2 && $dia > 28){
                    $tmp = $ano;
                    if($tmp > 2012){
                            while($tmp > 2012) {
                                    $tmp -=4;
                            }
                    }elseif($tmp < 2012){
                            while($tmp < 2012) {
                                    $tmp +=4;
                            }
                    }
                    if($tmp != 2012){
                            $dia1 = 1;
                            $mes++;
                    }
                }elseif($mes == 4 || $mes == 6 || $mes == 9 || $mes == 11){
                    if($dia == 31){
                        $dia1 = 1;
                        $mes++;
                    }else{
                        $dia1 = $dia;
                    }
                }elseif($mes == 13){
                    $mes = 1;
                    $ano++;
                    $dia1 = $dia;
                }else{
                    $dia1 = $dia;
                }

                if($mes < 10 && strlen($mes) < 2){
                    $mes = '0'.$mes;
                }
                if($dia1 < 10 && strlen($dia1) < 2){
                    $dia1 = '0'.$dia1;
                }

                $venc = $dia1."/".$mes."/".$ano;
            }
            $financeiro->set_vencimento($venc);
            $financeiro->set_parcela($np);
            $id = $financeiro->salvar();
            $np++;
        }
    }
    
    unset($venda);
    unset($parcela);
    unset($financeiro);
    
    if($fp == 1 || $pe == 1){
        $_SESSION["financeiro"] = $id;
    }else{
        $_SESSION["financeiro"] = 0;
    }
}

function status($s){
    if($s == 0){
        return "Ativo";
    }else if($s == 1){
        return "Pago";
    }else{
        return "Atrasado";
    }
}

function debita_montante($cliente){
    $sql_c = "select sum(valor) from Montante where idCliente = '$cliente'";
    $conexao = db::conecta();
    $res_c  = db::query($sql_c, $conexao);
    $c = db::fetch_array($res_c);
    $credito = limita_casa($c[0]);
    
    $sql_p = "select f.id, p.valorparcela from Financeiro f, Venda v, Parcelado p 
            where f.status <> '1' and f.idVenda = v.id and v.idParcelado = p.id and v.idCliente = '$cliente'
            order by f.vencimento";
    
    $res_p  = db::query($sql_p, $conexao);
    db::close($conexao);
    while($p = db::fetch_array($res_p)){
        if(limita_casa($p["valorparcela"]) < $credito){
            $financeiro = new Financeiro();
            $financeiro->carregar($p["id"]);
            $financeiro->set_status(1);
            $financeiro->alterar();
            unset($financeiro);
            
            $montante = new Montante();
            $montante->set_idCliente($cliente);
            $montante->set_valor($p["valorparcela"]*(-1));
            $montante->salvar();
            unset($montante);
            
            $credito -= $p["valorparcela"];
        }
    }
}

function status_financeiro($id, $pag){
    $sql = "update Financeiro set status = '1' where id = '$id'";
    $conexao = db::conecta();
    $result = db::query($sql, $conexao);
    db::close($conexao);
    
    header("location: ".url("pag", $pag));
}
?>
